diff --git a/MAINTAINERS b/MAINTAINERS
index 1fd975c..00985c0 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -877,6 +877,7 @@
 R:	Heinrich Schuchardt <xypron.glpk@gmx.de>
 S:	Maintained
 F:	cmd/rng.c
+F:	doc/api/rng.rst
 F:	drivers/rng/
 F:	drivers/virtio/virtio_rng.c
 F:	include/rng.h
diff --git a/doc/api/index.rst b/doc/api/index.rst
index fd3b5bd..b7eb572 100644
--- a/doc/api/index.rst
+++ b/doc/api/index.rst
@@ -9,5 +9,6 @@
    dfu
    efi
    linker_lists
+   rng
    serial
    unicode
diff --git a/doc/api/rng.rst b/doc/api/rng.rst
new file mode 100644
index 0000000..b826d4f
--- /dev/null
+++ b/doc/api/rng.rst
@@ -0,0 +1,17 @@
+.. SPDX-License-Identifier: GPL-2.0+
+.. Copyright (c) 2018 Heinrich Schuchardt
+
+Random number generation
+========================
+
+Hardware random number generation
+---------------------------------
+
+.. kernel-doc:: include/rng.h
+   :internal:
+
+Pseudo random number generation
+-------------------------------
+
+.. kernel-doc:: include/rand.h
+   :internal:
diff --git a/include/rand.h b/include/rand.h
index c9d15f5..4c54fbb 100644
--- a/include/rand.h
+++ b/include/rand.h
@@ -22,7 +22,7 @@
 /**
  * rand() - Get a 32-bit pseudo-random number
  *
- * @returns next random number in the sequence
+ * Return:	next random number in the sequence
  */
 unsigned int rand(void);
 
@@ -32,8 +32,8 @@
  * This version of the function allows multiple sequences to be used at the
  * same time, since it requires the caller to store the seed value.
  *
- * @seed value to use, updated on exit
- * @returns next random number in the sequence
+ * @seedp:	seed value to use, updated on exit
+ * Return:	 next random number in the sequence
  */
 unsigned int rand_r(unsigned int *seedp);
 
diff --git a/include/rng.h b/include/rng.h
index d2c0f9a..37af554 100644
--- a/include/rng.h
+++ b/include/rng.h
@@ -10,22 +10,32 @@
 
 /**
  * dm_rng_read() - read a random number seed from the rng device
- * @buffer:	input buffer to put the read random seed into
- * @size:	number of bytes of random seed read
  *
- * Return: 0 if OK, -ve on error
+ * The function blocks until the requested number of bytes is read.
+ *
+ * @dev:	random number generator device
+ * @buffer:	input buffer to put the read random seed into
+ * @size:	number of random bytes to read
+ * Return:	0 if OK, -ve on error
  */
 int dm_rng_read(struct udevice *dev, void *buffer, size_t size);
 
-/* struct dm_rng_ops - Operations for the hwrng uclass */
+/**
+ * struct dm_rng_ops - operations for the hwrng uclass
+ *
+ * This structures contains the function implemented by a hardware random
+ * number generation device.
+ */
 struct dm_rng_ops {
 	/**
-	 * @read() - read a random number seed
+	 * @read:	read a random bytes
 	 *
-	 * @data:	input buffer to read the random seed
-	 * @max:	total number of bytes to read
+	 * The function blocks until the requested number of bytes is read.
 	 *
-	 * Return: 0 if OK, -ve on error
+	 * @read.dev:		random number generator device
+	 * @read.data:		input buffer to read the random seed into
+	 * @read.max:		number of random bytes to read
+	 * @read.Return:	0 if OK, -ve on error
 	 */
 	int (*read)(struct udevice *dev, void *data, size_t max);
 };
diff --git a/lib/efi_loader/efi_image_loader.c b/lib/efi_loader/efi_image_loader.c
index 478aaf5..230d41a 100644
--- a/lib/efi_loader/efi_image_loader.c
+++ b/lib/efi_loader/efi_image_loader.c
@@ -369,7 +369,7 @@
 
 	/* 3. Extra data excluding Certificates Table */
 	if (bytes_hashed + authsz < len) {
-		debug("extra data for hash: %lu\n",
+		debug("extra data for hash: %zu\n",
 		      len - (bytes_hashed + authsz));
 		efi_image_region_add(regs, efi + bytes_hashed,
 				     efi + len - authsz, 0);
